package ar.com.indra.dao.impl;

import org.springframework.jdbc.core.support.JdbcDaoSupport;

import ar.com.indra.beans.RespuestaDTO;
import ar.com.indra.dao.RespuestaDAO;


public class RespuestaDaoImpl extends JdbcDaoSupport implements RespuestaDAO { //extends JdbcDaoSupport


	public int updatePosicionRta(RespuestaDTO r){
		// falta implementar
		System.out.println("RespuestaDaoImpl.updatePosicionRta(RespuestaDTO r): INICIO");		
		
		String sql = "update SESC_RESPUESTAS " +
				"set " +
				"COMENTARIO=?, " +
				"POSICION_RTA=?, " +				
				"LISTA_ETIQUETAS= (select concat(e.ID_GRUPO_ETIQUETA,concat('-',concat(e.ID_ETIQUETA,concat('-',e.ETIQUETA))))from SESC_ETIQUETAS e " +
				"where e.ID_ETIQUETA = (select ID_ETIQUETA from SESC_ETIQUETAS where ID_GRUPO_ETIQUETA=? and ETIQUETA like " +
				"(select SUBSTR((SELECT ROWCONCAT(concat('SELECT ETIQUETA FROM SESC_ETIQUETAS where ID_GRUPO_ETIQUETA=',?)) FROM dual), " +
				"              (select INSTR((SELECT ROWCONCAT(concat('SELECT ETIQUETA FROM SESC_ETIQUETAS where ID_GRUPO_ETIQUETA=',?)) FROM dual),',', 1, ?) from dual)+1, " +
				"              ((select INSTR((SELECT ROWCONCAT(concat('SELECT ETIQUETA FROM SESC_ETIQUETAS where ID_GRUPO_ETIQUETA=',?)) FROM dual),',', 1, ?+1) from dual) - " +
				"              (select INSTR((SELECT ROWCONCAT(concat('SELECT ETIQUETA FROM SESC_ETIQUETAS where ID_GRUPO_ETIQUETA=',?)) FROM dual),',', 1, ?) from dual)-1) " +
				") from dual ))), " +
				"AGRUPACION= (select e.AGRUPADO from SESC_ETIQUETAS e " +
				"where " +
				"e.ID_ETIQUETA = (select ID_ETIQUETA from SESC_ETIQUETAS where ID_GRUPO_ETIQUETA=1 and ETIQUETA like " +
				"(select SUBSTR((SELECT ROWCONCAT(concat('SELECT ETIQUETA FROM SESC_ETIQUETAS where ID_GRUPO_ETIQUETA=',?)) FROM dual), " +
				"              (select INSTR((SELECT ROWCONCAT(concat('SELECT ETIQUETA FROM SESC_ETIQUETAS where ID_GRUPO_ETIQUETA=',?)) FROM dual),',', 1,?) from dual)+1, " +
				"              ((select INSTR((SELECT ROWCONCAT(concat('SELECT ETIQUETA FROM SESC_ETIQUETAS where ID_GRUPO_ETIQUETA=',?)) FROM dual),',', 1,?+1) from dual) - " +
				"              (select INSTR((SELECT ROWCONCAT(concat('SELECT ETIQUETA FROM SESC_ETIQUETAS where ID_GRUPO_ETIQUETA=',?)) FROM dual),',', 1, ?) from dual)-1) " +
				") from dual ))) " +
				"where ID_PREGUNTA_ENCUESTA=? " +
				"And ID_USUARIO = ? ";
		int idGrupoEtiqueta = 0;
		int posicion = 0;
		if(r.getId_grupo_etiqueta()!=null){
			idGrupoEtiqueta = r.getId_grupo_etiqueta().intValue();
		}else{
			idGrupoEtiqueta=0;
		}
		if(r.getPosicion_rta()!=null){
			posicion = r.getPosicion_rta().intValue();
		}else{
			posicion=0;
		}

		Object[] parameters = new Object[] {r.getComentario(),  posicion, idGrupoEtiqueta, 
											idGrupoEtiqueta, idGrupoEtiqueta, posicion, 
											idGrupoEtiqueta, posicion,
											idGrupoEtiqueta,posicion, 
											idGrupoEtiqueta, idGrupoEtiqueta, 
											posicion, idGrupoEtiqueta, 
											posicion, idGrupoEtiqueta, posicion, 
											r.getId_pregunta_encuestas().intValue(), r.getId_usuario().intValue()};
									
		int resultado = getJdbcTemplate().update(sql, parameters);
		
		System.out.println("RespuestaDaoImpl.updatePosicionRta(RespuestaDTO r): FIN");
		
		return resultado;
		
	}
	
	public int insert(RespuestaDTO r){
		// falta implementar
		System.out.println("RespuestaDaoImpl.insert(RespuestaDTO r): INICIO");		
		
		String sql = "insert into SESC_RESPUESTAS " +
				"select " +
				"SEQ_SESC_RESPUESTAS.NextVal, " +
				"'', " +
				"pf.ID_PREGUNTA_ENCUESTA, " +
				"pf.ID_FORMULARIO, " +
				"pf.ID_AREA, " +
				"null, " +
				"?, " +
				"pf.ID_PREGUNTA, " +
				"pf.ID_SERVICIO, " +
				"pf.ID_TIPO_PREGUNTAS, " +
				"null, " +
				"pf.ID_GRUPO_ETIQUETA, " +
				"null, " +
				"null, " +
				"? " +
				"from SESC_PREGUNTAS_FORMULARIOS pf " +
				"where pf.ID_FORMULARIO = ? ";

		Object[] parameters = new Object[] {r.getId_encuesta().intValue(), 
										    r.getId_usuario().intValue(), r.getId_formulario().intValue()};
									
		int resultado = getJdbcTemplate().update(sql, parameters);
		
		System.out.println("RespuestaDaoImpl.insert(RespuestaDTO r): FIN");
		
		return resultado;
		
	}
	

}
